Release 10.1A: OpenEdge Development:
Progress Dynamics Basic Development


Combo and lookup performance and caching considerations

This section describes how dynamic combos and lookups operate, so you can understand better how to use them in your applications.

The Progress Dynamics Viewer support code coordinates data retrieval for all dynamic combos and lookups in a given viewer. On initialization, all the database records necessary for populating the description fields of a combo or the linked fields of a Lookup are read from the database and returned to the client-side viewer in a single AppServer call. No extra SDOs or other objects are needed to handle the data. When the value in a parent object changes, all the data for dependent child objects in the same viewer will be retrieved in a single call. This represents a significant improvement over the standard Version 9 SmartSelect object, which associates each client-side lookup or combo visualization with an SDO that needs to run on both client and server.

You can, however, use an SDO as a data source for a dynamic combo. One advantage of this is the ability to use the client-side application data caching abilities of the SDO with the combo. See the chapter in OpenEdge Development: Progress Dynamics Advanced Development for information about the client-side application data cache and dynamic combos and lookups.

As discussed in Chapter 4, "Preparing to Build Application Objects," it can be useful to add joins to SDOs to pull in descriptive fields from related tables as read-only fields. Even if you display those SDO fields in viewers with lookups and combos that can pull in the related descriptive fields on their own, it is still valuable to have the extra fields from other tables be a part of the SDO field list. First of all, you might want to display those fields in a browser, or elsewhere where the lookup and combo do not apply.

Notes: To control whether dynamic combos and lookups whose datasource is a database table cache or don’t cache, use the session property field_cache_options.

Map fields (Map fields tab) are another feature of lookups that can be used for better performance. See the performance section in OpenEdge Development: Progress Dynamics Administration for more information.

Old or new Version 2.1B API

Beginning in Progress Dynamics Version 2.1B, the ADM2 functions that make up the API for dynamic combos and lookups have been retooled for performance and caching improvements. The signatures have not changed, so no code changes are likely needed. You should use the new APIs by default, but Progress Dynamics provides session properties to control this decision. See the application data caching chapter in OpenEdge Development: Progress Dynamics Advanced Development for information about these session properties.


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095